#ifndef _COMMAND
#define _COMMAND
#include <iostream>
#include <fstream>
#include <string>
#include "Pet.h"
#include "Dog.h"
#include "Cat.h"
#include "AppError.h"
#include "IOMgmt.h"
using namespace std;

class Command {
      public:
              Command();				    //Default constructor
              Command( ifstream& fin );	    //This constructor will be the main one we use
              ~Command();                   //Deconstructor
              void Execute(ostream& fout) throw (AppError);
              void  Extract(ifstream& fin ) throw (TokenError);
              void  Insert( ostream& fout );
      protected:
              void  Get( ifstream& fin) throw (TokenError);
              void  Put( ostream& fout);
      private:
              string command;
              string pet1com;
              string pet2com;
              Pet pet;
              Dog dog1;
              Dog dog2;
              Cat cat;
              string checker;
};//end declaration of Command Header

#endif
